<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1. reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行)，将其结果汇总为单个返回值。
        // 2. reducer 函数接收4个参数:
        //     1. Accumulator (acc) (累计器)
        //     2. Current Value (cur) (当前值)
        //     3. Current Index (idx) (当前索引)
        //     4. Source Array (src) (源数组)
        // 3. 如果提供了initialValue，则将其作为第一次调用 callback函数时的第一个参数值。如果没有提供初始值，则将数组中的第一个元素用作初始值，并在数组中省略第一个元素。
        // 4. 如果数组为空且没有提供initialValue，则报错。
        // 5. 如果数组仅有一个元素（无论位置如何）并且没有提供initialValue，则在没有调用callback的情况下返回该元素。
        // 6. 如果函数没有返回值，则默认返回undefined
        [1, 2, 3, 4].reduce((x, y) => console.log(x, y));
    </script>
</body>

</html>